package com.yeung.exam;

// 本题为考试单行多行输入输出规范示例，无需提交，不计分。

import java.util.Scanner;

/**
 * 特殊的测试
 * 时间限制：C/C++语言 1000MS；其他语言 3000MS
 * 内存限制：C/C++语言 131072KB；其他语言 655360KB
 * 题目描述：
 * 小C在做一种特殊的服务器负载测试，对于一个请求队列中的请求，每一个请求都有一个负荷值，
 * 为了保证服务器稳定，请求队列中的请求负荷必须按照先递增后递减的规律(仅递增，仅递减也可以)，
 * 比如[ 1，2，8，4，3 ]，[ 1，3，5 ]和[ 10 ]这些是满足规律的，还有一些不满足的，比如[ 1，2，2，1 ]，[ 2，1，2 ]和[ 10，10 ]。
 * 现在给你一个请求队列，你可以对请求的负荷值进行增加，
 * 要求你调整队列中请求的负荷值，使数组满足条件。最后输出使队列满足条件最小的增加总和。
 */
public class 特殊的测试 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Integer count = Integer.valueOf(scanner.nextLine());
        String line = scanner.nextLine();
        int[] nums = new int[count];
        int index = 0;
        for (String s : line.split(" ")) {
            nums[index++] = Integer.valueOf(s);
        }
        //开始计算cost 存递增的方式
        int cost1 = 0;
        int[] c1 = nums.clone();
        for (int i = 1; i < nums.length; i++) {
            int pre = c1[i - 1];
            int suf = c1[i];
            if (pre >= suf) {
                cost1 += (pre - suf + 1);
                c1[i] =pre+1;
            }
        }
        //开始计算 先递增后递减
        //1 找到中点
        int low = 1;
        int high = nums.length - 1;
        int cost2 = 0;
        boolean isLow = true;
        while (low != high) {
            if (isLow) {
                //从低的方向添加cost
                int pre = nums[low - 1];
                int suf = nums[low];
                if (pre >= suf) {
                    cost2 += (pre - suf + 1);
                    nums[low] =pre+1;
                }
                low++;
                isLow = false;
            } else {
                //从高的往低的方向加cost
                int pre = nums[high];
                int suf = nums[high - 1];
                if (pre >= suf) {
                    cost2 += (pre - suf + 1);
                    nums[high] = pre+1;
                }
                high--;
                isLow = true;
            }


        }
        if (cost1 > cost2)
            System.out.println(cost2);
        else
            System.out.println(cost1);

    }
}
